//路由守卫
//引入路由
import router from "@/router/index";
//引入store
import store from '../store/index'
import {Message} from "element-ui";

//不需要守卫的页面放到白名单
const whiteList = ['/login'];
console.log(whiteList);
//添加的只有超级管理员才能访问的页面路径
const typeList = ["/account/addAccount","/account/accountList"];

//路由守卫
/*
全局守卫（全局前置后卫，全局后置钩子，全局解析守卫）、
组件级守卫（进入组件的守卫，离开组件的守卫，修改组件的守卫），路由独享守卫
beforeEach((to,from,next)=>{})
*/
//需求，在登录页面，没登录就放行，登录跳转到 首页，非登录页面，如果已经登录，放行，没登录，跳转到登录页
router.beforeEach((to,from,next)=>{
    console.log("路由守卫执行了",to,from,next);

    if (store.getters.token){//表示已经登录了
        if (to.path == "/login"){
            next("/home/dashboard");
        }else if (typeList.indexOf(to.path) != -1){//判断该页面是不是超级管理员才能访问的页面
            if (store.getters.type == "1"){//超级管理员
                next();
            }else {//非超级管理员
                console.log("退出登录");
                Message.error("您没有权限访问该页面，请使用超级管理员账号重新登录");
                //发送退出登录的动作
                store.dispatch('LogoutAction');
                next("/login");
            }
        } else {
            next();
        }
    }else {//还没有登录
        if (whiteList.indexOf(to.path) != -1){
            next();
        }else {
            next("/login");
        }
    }
})